/*
 * @Description: 权限管理（菜单与功能）
 * @Author: HuiSir<273250950@qq.com>
 * @Date: 2025-06-23 21:44:32
 * @LastEditTime: 2025-09-03 11:16:53
 */
import Req from "@/utils/Request";
const Prefix = "/permission";

/**
 * 获取权限树
 *
 * @param params 请求参数
 * @param params.code 编码，可选
 * @param params.permissionType 权限类型，可选
 * @returns ApiRequest 对象
 */
export const getPermTree: ApiRequest<
  {
    code?: string; //编码
    permissionType?: string; //类型
  } | void
> = (params = {}) => Req.get(`${Prefix}/getTree`, { params });

/**
 * 获取权限列表
 *
 * @param pid 权限组ID
 * @returns 返回权限列表
 */
export const getPermList: ApiRequest<string> = (pid) =>
  Req.get(`${Prefix}/getList`, { params: { pid } });

/**
 * 添加权限的API请求函数
 *
 * @param data 包含权限信息的对象
 * @returns 返回ApiRequest对象，该对象包含权限添加操作的请求
 */
export const addPerm: ApiRequest<Recordable> = (data) =>
  Req.post(`${Prefix}/add`, data);

/**
 * 更新权限的 API 请求函数
 *
 * @param data 需要更新的权限数据
 * @returns ApiRequest<Recordable> 返回 ApiRequest 对象
 */
export const updatePerm: ApiRequest<Recordable> = (data) =>
  Req.post(`${Prefix}/update`, data);

/**
 * 删除权限的API请求函数
 *
 * @param id 要删除的权限ID
 * @returns 返回API请求的Promise对象，请求成功时返回权限ID的字符串
 */
export const delPerm: ApiRequest<string> = (id) =>
  Req.get(`${Prefix}/delete`, { params: { id } });
